package br.com.exemplo.vendas.negocio.ejb ;

import java.rmi.RemoteException;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.com.exemplo.vendas.negocio.dao.DaoFactory;
import br.com.exemplo.vendas.negocio.ejb.interfaces.ProdutoLocal;
import br.com.exemplo.vendas.negocio.ejb.interfaces.ProdutoRemote;
import br.com.exemplo.vendas.negocio.entity.Compra;
import br.com.exemplo.vendas.negocio.entity.Produto;
import br.com.exemplo.vendas.negocio.model.vo.ComprasVO;
import br.com.exemplo.vendas.negocio.model.vo.ProdutoVO;
import br.com.exemplo.vendas.util.dto.ServiceDTO;
import br.com.exemplo.vendas.util.exception.LayerException;

@Stateless
public class ProdutoBean implements ProdutoRemote, ProdutoLocal
{
	@PersistenceContext( unitName = "Vendas" )
	EntityManager em ;

	@Override
	public ServiceDTO listarProdutos(ServiceDTO requestDTO)
			throws LayerException, RemoteException {
		ServiceDTO responseDTO = new ServiceDTO( ) ;
		Produto produto = null ;
		List<Produto> lista = DaoFactory.getProdutoDAO( em ).listarProdutos();
		ProdutoVO[] listaProdutos = null;
		
		if (( lista != null ) && ( !lista.isEmpty() ))
		{
			listaProdutos = new ProdutoVO[lista.size()];
			for (int i = 0; i < lista.size( ); i++){
		
				produto = (Produto) lista.get( i ) ;
				ProdutoVO produtoVO = new ProdutoVO(produto.getId(), produto.getCodigo(), produto.getDescricao(), 
					produto.getEstoque(), produto.getPreco());
				listaProdutos[ i ] = produtoVO ;
			}
		}
		responseDTO.set( "listaProduto", listaProdutos ) ;
		responseDTO.set( "resposta", new Boolean( true ) ) ;
		return responseDTO ;
	}

	
}
